<!DOCTYPE html>
<html lang="en">
<head>
    
    <meta charset="utf-8">
    <title>DrawerBase - Documentation</title>
    
    
    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
    <script src="scripts/nav.js" defer></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
  <div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav >
    
    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ArrayHelper.html">ArrayHelper</a><ul class='methods'><li data-type='method'><a href="ArrayHelper.html#.clone">clone</a></li><li data-type='method'><a href="ArrayHelper.html#.contains">contains</a></li><li data-type='method'><a href="ArrayHelper.html#.containsAll">containsAll</a></li><li data-type='method'><a href="ArrayHelper.html#.count">count</a></li><li data-type='method'><a href="ArrayHelper.html#.deepCopy">deepCopy</a></li><li data-type='method'><a href="ArrayHelper.html#.each">each</a></li><li data-type='method'><a href="ArrayHelper.html#.equals">equals</a></li><li data-type='method'><a href="ArrayHelper.html#.get">get</a></li><li data-type='method'><a href="ArrayHelper.html#.intersection">intersection</a></li><li data-type='method'><a href="ArrayHelper.html#.merge">merge</a></li><li data-type='method'><a href="ArrayHelper.html#.print">print</a></li><li data-type='method'><a href="ArrayHelper.html#.remove">remove</a></li><li data-type='method'><a href="ArrayHelper.html#.removeAll">removeAll</a></li><li data-type='method'><a href="ArrayHelper.html#.removeUnique">removeUnique</a></li><li data-type='method'><a href="ArrayHelper.html#.sortByAtomicNumberDesc">sortByAtomicNumberDesc</a></li><li data-type='method'><a href="ArrayHelper.html#.toggle">toggle</a></li><li data-type='method'><a href="ArrayHelper.html#.unique">unique</a></li></ul></li><li><a href="Atom.html">Atom</a><ul class='methods'><li data-type='method'><a href="Atom.html#addAnchoredRing">addAnchoredRing</a></li><li data-type='method'><a href="Atom.html#addNeighbouringElement">addNeighbouringElement</a></li><li data-type='method'><a href="Atom.html#attachPseudoElement">attachPseudoElement</a></li><li data-type='method'><a href="Atom.html#backupRings">backupRings</a></li><li data-type='method'><a href="Atom.html#getAtomicNumber">getAtomicNumber</a></li><li data-type='method'><a href="Atom.html#getAttachedPseudoElements">getAttachedPseudoElements</a></li><li data-type='method'><a href="Atom.html#getAttachedPseudoElementsCount">getAttachedPseudoElementsCount</a></li><li data-type='method'><a href="Atom.html#getMaxBonds">getMaxBonds</a></li><li data-type='method'><a href="Atom.html#getRingbondCount">getRingbondCount</a></li><li data-type='method'><a href="Atom.html#haveCommonRingbond">haveCommonRingbond</a></li><li data-type='method'><a href="Atom.html#isHeteroAtom">isHeteroAtom</a></li><li data-type='method'><a href="Atom.html#neighbouringElementsEqual">neighbouringElementsEqual</a></li><li data-type='method'><a href="Atom.html#restoreRings">restoreRings</a></li></ul></li><li><a href="CanvasWrapper.html">CanvasWrapper</a><ul class='methods'><li data-type='method'><a href="CanvasWrapper.html#clear">clear</a></li><li data-type='method'><a href="CanvasWrapper.html#drawAromaticityRing">drawAromaticityRing</a></li><li data-type='method'><a href="CanvasWrapper.html#drawBall">drawBall</a></li><li data-type='method'><a href="CanvasWrapper.html#drawCircle">drawCircle</a></li><li data-type='method'><a href="CanvasWrapper.html#drawDashedWedge">drawDashedWedge</a></li><li data-type='method'><a href="CanvasWrapper.html#drawDebugPoint">drawDebugPoint</a></li><li data-type='method'><a href="CanvasWrapper.html#drawDebugText">drawDebugText</a></li><li data-type='method'><a href="CanvasWrapper.html#drawLine">drawLine</a></li><li data-type='method'><a href="CanvasWrapper.html#drawPoint">drawPoint</a></li><li data-type='method'><a href="CanvasWrapper.html#drawText">drawText</a></li><li data-type='method'><a href="CanvasWrapper.html#drawWedge">drawWedge</a></li><li data-type='method'><a href="CanvasWrapper.html#getChargeText">getChargeText</a></li><li data-type='method'><a href="CanvasWrapper.html#getColor">getColor</a></li><li data-type='method'><a href="CanvasWrapper.html#reset">reset</a></li><li data-type='method'><a href="CanvasWrapper.html#scale">scale</a></li><li data-type='method'><a href="CanvasWrapper.html#setTheme">setTheme</a></li><li data-type='method'><a href="CanvasWrapper.html#updateSize">updateSize</a></li></ul></li><li><a href="Drawer.html">Drawer</a><ul class='methods'><li data-type='method'><a href="Drawer.html#draw">draw</a></li><li data-type='method'><a href="Drawer.html#getMolecularFormula">getMolecularFormula</a></li><li data-type='method'><a href="Drawer.html#getTotalOverlapScore">getTotalOverlapScore</a></li></ul></li><li><a href="DrawerBase.html">DrawerBase</a><ul class='methods'><li data-type='method'><a href="DrawerBase.html#addRing">addRing</a></li><li data-type='method'><a href="DrawerBase.html#addRingConnection">addRingConnection</a></li><li data-type='method'><a href="DrawerBase.html#annotateStereochemistry">annotateStereochemistry</a></li><li data-type='method'><a href="DrawerBase.html#areVerticesInSameRing">areVerticesInSameRing</a></li><li data-type='method'><a href="DrawerBase.html#backupRingInformation">backupRingInformation</a></li><li data-type='method'><a href="DrawerBase.html#chooseSide">chooseSide</a></li><li data-type='method'><a href="DrawerBase.html#createBridgedRing">createBridgedRing</a></li><li data-type='method'><a href="DrawerBase.html#createNextBond">createNextBond</a></li><li data-type='method'><a href="DrawerBase.html#createRing">createRing</a></li><li data-type='method'><a href="DrawerBase.html#draw">draw</a></li><li data-type='method'><a href="DrawerBase.html#drawEdge">drawEdge</a></li><li data-type='method'><a href="DrawerBase.html#drawEdges">drawEdges</a></li><li data-type='method'><a href="DrawerBase.html#drawVertices">drawVertices</a></li><li data-type='method'><a href="DrawerBase.html#edgeRingCount">edgeRingCount</a></li><li data-type='method'><a href="DrawerBase.html#getBridgedRingRings">getBridgedRingRings</a></li><li data-type='method'><a href="DrawerBase.html#getBridgedRings">getBridgedRings</a></li><li data-type='method'><a href="DrawerBase.html#getClosestVertex">getClosestVertex</a></li><li data-type='method'><a href="DrawerBase.html#getCommonRingbondNeighbour">getCommonRingbondNeighbour</a></li><li data-type='method'><a href="DrawerBase.html#getCommonRings">getCommonRings</a></li><li data-type='method'><a href="DrawerBase.html#getCurrentCenterOfMass">getCurrentCenterOfMass</a></li><li data-type='method'><a href="DrawerBase.html#getCurrentCenterOfMassInNeigbourhood">getCurrentCenterOfMassInNeigbourhood</a></li><li data-type='method'><a href="DrawerBase.html#getEdgeNormals">getEdgeNormals</a></li><li data-type='method'><a href="DrawerBase.html#getFusedRings">getFusedRings</a></li><li data-type='method'><a href="DrawerBase.html#getHeavyAtomCount">getHeavyAtomCount</a></li><li data-type='method'><a href="DrawerBase.html#getLargestOrAromaticCommonRing">getLargestOrAromaticCommonRing</a></li><li data-type='method'><a href="DrawerBase.html#getLastVertexWithAngle">getLastVertexWithAngle</a></li><li data-type='method'><a href="DrawerBase.html#getMolecularFormula">getMolecularFormula</a></li><li data-type='method'><a href="DrawerBase.html#getNonRingNeighbours">getNonRingNeighbours</a></li><li data-type='method'><a href="DrawerBase.html#getOverlapScore">getOverlapScore</a></li><li data-type='method'><a href="DrawerBase.html#getRing">getRing</a></li><li data-type='method'><a href="DrawerBase.html#getRingbondType">getRingbondType</a></li><li data-type='method'><a href="DrawerBase.html#getRingConnection">getRingConnection</a></li><li data-type='method'><a href="DrawerBase.html#getRingConnections">getRingConnections</a></li><li data-type='method'><a href="DrawerBase.html#getRingCount">getRingCount</a></li><li data-type='method'><a href="DrawerBase.html#getSpiros">getSpiros</a></li><li data-type='method'><a href="DrawerBase.html#getSubringCenter">getSubringCenter</a></li><li data-type='method'><a href="DrawerBase.html#getSubtreeOverlapScore">getSubtreeOverlapScore</a></li><li data-type='method'><a href="DrawerBase.html#getTotalOverlapScore">getTotalOverlapScore</a></li><li data-type='method'><a href="DrawerBase.html#getVerticesAt">getVerticesAt</a></li><li data-type='method'><a href="DrawerBase.html#hasBridgedRing">hasBridgedRing</a></li><li data-type='method'><a href="DrawerBase.html#initPseudoElements">initPseudoElements</a></li><li data-type='method'><a href="DrawerBase.html#initRings">initRings</a></li><li data-type='method'><a href="DrawerBase.html#isEdgeInRing">isEdgeInRing</a></li><li data-type='method'><a href="DrawerBase.html#isEdgeRotatable">isEdgeRotatable</a></li><li data-type='method'><a href="DrawerBase.html#isPartOfBridgedRing">isPartOfBridgedRing</a></li><li data-type='method'><a href="DrawerBase.html#isPointInRing">isPointInRing</a></li><li data-type='method'><a href="DrawerBase.html#isRingAromatic">isRingAromatic</a></li><li data-type='method'><a href="DrawerBase.html#position">position</a></li><li data-type='method'><a href="DrawerBase.html#printRingInfo">printRingInfo</a></li><li data-type='method'><a href="DrawerBase.html#removeRing">removeRing</a></li><li data-type='method'><a href="DrawerBase.html#removeRingConnection">removeRingConnection</a></li><li data-type='method'><a href="DrawerBase.html#removeRingConnectionsBetween">removeRingConnectionsBetween</a></li><li data-type='method'><a href="DrawerBase.html#resolvePrimaryOverlaps">resolvePrimaryOverlaps</a></li><li data-type='method'><a href="DrawerBase.html#resolveSecondaryOverlaps">resolveSecondaryOverlaps</a></li><li data-type='method'><a href="DrawerBase.html#restoreRingInformation">restoreRingInformation</a></li><li data-type='method'><a href="DrawerBase.html#rotateDrawing">rotateDrawing</a></li><li data-type='method'><a href="DrawerBase.html#rotateSubtree">rotateSubtree</a></li><li data-type='method'><a href="DrawerBase.html#setRingCenter">setRingCenter</a></li><li data-type='method'><a href="DrawerBase.html#visitStereochemistry">visitStereochemistry</a></li></ul></li><li><a href="Edge.html">Edge</a><ul class='methods'><li data-type='method'><a href="Edge.html#setBondType">setBondType</a></li></ul></li><li><a href="GaussDrawer.html">GaussDrawer</a><ul class='methods'><li data-type='method'><a href="GaussDrawer.html#draw">draw</a></li><li data-type='method'><a href="GaussDrawer.html#getImage">getImage</a></li><li data-type='method'><a href="GaussDrawer.html#getSVG">getSVG</a></li><li data-type='method'><a href="GaussDrawer.html#setPixel">setPixel</a></li></ul></li><li><a href="Graph.html">Graph</a><ul class='methods'><li data-type='method'><a href="Graph.html#._ccCountDfs">_ccCountDfs</a></li><li data-type='method'><a href="Graph.html#._ccGetDfs">_ccGetDfs</a></li><li data-type='method'><a href="Graph.html#.getConnectedComponentCount">getConnectedComponentCount</a></li><li data-type='method'><a href="Graph.html#.getConnectedComponents">getConnectedComponents</a></li><li data-type='method'><a href="Graph.html#_bridgeDfs">_bridgeDfs</a></li><li data-type='method'><a href="Graph.html#_init">_init</a></li><li data-type='method'><a href="Graph.html#addEdge">addEdge</a></li><li data-type='method'><a href="Graph.html#addVertex">addVertex</a></li><li data-type='method'><a href="Graph.html#clear">clear</a></li><li data-type='method'><a href="Graph.html#getAdjacencyList">getAdjacencyList</a></li><li data-type='method'><a href="Graph.html#getAdjacencyMatrix">getAdjacencyMatrix</a></li><li data-type='method'><a href="Graph.html#getBridges">getBridges</a></li><li data-type='method'><a href="Graph.html#getComponentsAdjacencyMatrix">getComponentsAdjacencyMatrix</a></li><li data-type='method'><a href="Graph.html#getDistanceMatrix">getDistanceMatrix</a></li><li data-type='method'><a href="Graph.html#getEdge">getEdge</a></li><li data-type='method'><a href="Graph.html#getEdgeList">getEdgeList</a></li><li data-type='method'><a href="Graph.html#getEdges">getEdges</a></li><li data-type='method'><a href="Graph.html#getSubgraphAdjacencyList">getSubgraphAdjacencyList</a></li><li data-type='method'><a href="Graph.html#getSubgraphAdjacencyMatrix">getSubgraphAdjacencyMatrix</a></li><li data-type='method'><a href="Graph.html#getSubgraphDistanceMatrix">getSubgraphDistanceMatrix</a></li><li data-type='method'><a href="Graph.html#getTreeDepth">getTreeDepth</a></li><li data-type='method'><a href="Graph.html#getVertexList">getVertexList</a></li><li data-type='method'><a href="Graph.html#hasEdge">hasEdge</a></li><li data-type='method'><a href="Graph.html#kkLayout">kkLayout</a></li><li data-type='method'><a href="Graph.html#traverseBF">traverseBF</a></li><li data-type='method'><a href="Graph.html#traverseTree">traverseTree</a></li></ul></li><li><a href="Line.html">Line</a><ul class='methods'><li data-type='method'><a href="Line.html#clone">clone</a></li><li data-type='method'><a href="Line.html#getAngle">getAngle</a></li><li data-type='method'><a href="Line.html#getLeftChiral">getLeftChiral</a></li><li data-type='method'><a href="Line.html#getLeftElement">getLeftElement</a></li><li data-type='method'><a href="Line.html#getLeftVector">getLeftVector</a></li><li data-type='method'><a href="Line.html#getLength">getLength</a></li><li data-type='method'><a href="Line.html#getRightChiral">getRightChiral</a></li><li data-type='method'><a href="Line.html#getRightElement">getRightElement</a></li><li data-type='method'><a href="Line.html#getRightVector">getRightVector</a></li><li data-type='method'><a href="Line.html#rotate">rotate</a></li><li data-type='method'><a href="Line.html#rotateToXAxis">rotateToXAxis</a></li><li data-type='method'><a href="Line.html#setLeftVector">setLeftVector</a></li><li data-type='method'><a href="Line.html#setRightVector">setRightVector</a></li><li data-type='method'><a href="Line.html#shorten">shorten</a></li><li data-type='method'><a href="Line.html#shortenFrom">shortenFrom</a></li><li data-type='method'><a href="Line.html#shortenLeft">shortenLeft</a></li><li data-type='method'><a href="Line.html#shortenRight">shortenRight</a></li><li data-type='method'><a href="Line.html#shortenTo">shortenTo</a></li></ul></li><li><a href="MathHelper.html">MathHelper</a><ul class='methods'><li data-type='method'><a href="MathHelper.html#.apothem">apothem</a></li><li data-type='method'><a href="MathHelper.html#.centralAngle">centralAngle</a></li><li data-type='method'><a href="MathHelper.html#.innerAngle">innerAngle</a></li><li data-type='method'><a href="MathHelper.html#.meanAngle">meanAngle</a></li><li data-type='method'><a href="MathHelper.html#.parityOfPermutation">parityOfPermutation</a></li><li data-type='method'><a href="MathHelper.html#.polyCircumradius">polyCircumradius</a></li><li data-type='method'><a href="MathHelper.html#.round">round</a></li><li data-type='method'><a href="MathHelper.html#.toDeg">toDeg</a></li><li data-type='method'><a href="MathHelper.html#.toRad">toRad</a></li></ul></li><li><a href="Reaction.html">Reaction</a></li><li><a href="ReactionDrawer.html">ReactionDrawer</a><ul class='methods'><li data-type='method'><a href="ReactionDrawer.html#draw">draw</a></li></ul></li><li><a href="Ring.html">Ring</a><ul class='methods'><li data-type='method'><a href="Ring.html#clone">clone</a></li><li data-type='method'><a href="Ring.html#contains">contains</a></li><li data-type='method'><a href="Ring.html#eachMember">eachMember</a></li><li data-type='method'><a href="Ring.html#getAngle">getAngle</a></li><li data-type='method'><a href="Ring.html#getDoubleBondCount">getDoubleBondCount</a></li><li data-type='method'><a href="Ring.html#getOrderedNeighbours">getOrderedNeighbours</a></li><li data-type='method'><a href="Ring.html#getPolygon">getPolygon</a></li><li data-type='method'><a href="Ring.html#getSize">getSize</a></li><li data-type='method'><a href="Ring.html#isBenzeneLike">isBenzeneLike</a></li></ul></li><li><a href="RingConnection.html">RingConnection</a><ul class='methods'><li data-type='method'><a href="RingConnection.html#.getNeighbours">getNeighbours</a></li><li data-type='method'><a href="RingConnection.html#.getVertices">getVertices</a></li><li data-type='method'><a href="RingConnection.html#.isBridge">isBridge</a></li><li data-type='method'><a href="RingConnection.html#addVertex">addVertex</a></li><li data-type='method'><a href="RingConnection.html#containsRing">containsRing</a></li><li data-type='method'><a href="RingConnection.html#isBridge">isBridge</a></li><li data-type='method'><a href="RingConnection.html#updateOther">updateOther</a></li></ul></li><li><a href="SSSR.html">SSSR</a><ul class='methods'><li data-type='method'><a href="SSSR.html#.areSetsEqual">areSetsEqual</a></li><li data-type='method'><a href="SSSR.html#.bondsToAtoms">bondsToAtoms</a></li><li data-type='method'><a href="SSSR.html#.getBondCount">getBondCount</a></li><li data-type='method'><a href="SSSR.html#.getEdgeCount">getEdgeCount</a></li><li data-type='method'><a href="SSSR.html#.getEdgeList">getEdgeList</a></li><li data-type='method'><a href="SSSR.html#.getPathIncludedDistanceMatrices">getPathIncludedDistanceMatrices</a></li><li data-type='method'><a href="SSSR.html#.getRingCandidates">getRingCandidates</a></li><li data-type='method'><a href="SSSR.html#.getRings">getRings</a></li><li data-type='method'><a href="SSSR.html#.getSSSR">getSSSR</a></li><li data-type='method'><a href="SSSR.html#.isSupersetOf">isSupersetOf</a></li><li data-type='method'><a href="SSSR.html#.matrixToString">matrixToString</a></li><li data-type='method'><a href="SSSR.html#.pathSetsContain">pathSetsContain</a></li></ul></li><li><a href="Vector2.html">Vector2</a><ul class='methods'><li data-type='method'><a href="Vector2.html#add">add</a></li><li data-type='method'><a href="Vector2.html#angle">angle</a></li><li data-type='method'><a href="Vector2.html#clockwise">clockwise</a></li><li data-type='method'><a href="Vector2.html#clone">clone</a></li><li data-type='method'><a href="Vector2.html#distance">distance</a></li><li data-type='method'><a href="Vector2.html#distanceSq">distanceSq</a></li><li data-type='method'><a href="Vector2.html#divide">divide</a></li><li data-type='method'><a href="Vector2.html#getRotateAwayFromAngle">getRotateAwayFromAngle</a></li><li data-type='method'><a href="Vector2.html#getRotateToAngle">getRotateToAngle</a></li><li data-type='method'><a href="Vector2.html#getRotateTowardsAngle">getRotateTowardsAngle</a></li><li data-type='method'><a href="Vector2.html#invert">invert</a></li><li data-type='method'><a href="Vector2.html#isInPolygon">isInPolygon</a></li><li data-type='method'><a href="Vector2.html#length">length</a></li><li data-type='method'><a href="Vector2.html#lengthSq">lengthSq</a></li><li data-type='method'><a href="Vector2.html#multiply">multiply</a></li><li data-type='method'><a href="Vector2.html#multiplyScalar">multiplyScalar</a></li><li data-type='method'><a href="Vector2.html#normalize">normalize</a></li><li data-type='method'><a href="Vector2.html#normalized">normalized</a></li><li data-type='method'><a href="Vector2.html#relativeClockwise">relativeClockwise</a></li><li data-type='method'><a href="Vector2.html#rotate">rotate</a></li><li data-type='method'><a href="Vector2.html#rotateAround">rotateAround</a></li><li data-type='method'><a href="Vector2.html#rotateAwayFrom">rotateAwayFrom</a></li><li data-type='method'><a href="Vector2.html#rotateTo">rotateTo</a></li><li data-type='method'><a href="Vector2.html#sameSideAs">sameSideAs</a></li><li data-type='method'><a href="Vector2.html#subtract">subtract</a></li><li data-type='method'><a href="Vector2.html#toString">toString</a></li><li data-type='method'><a href="Vector2.html#whichSide">whichSide</a></li><li data-type='method'><a href="Vector2.html#.add">add</a></li><li data-type='method'><a href="Vector2.html#.angle">angle</a></li><li data-type='method'><a href="Vector2.html#.averageDirection">averageDirection</a></li><li data-type='method'><a href="Vector2.html#.divide">divide</a></li><li data-type='method'><a href="Vector2.html#.divideScalar">divideScalar</a></li><li data-type='method'><a href="Vector2.html#.dot">dot</a></li><li data-type='method'><a href="Vector2.html#.midpoint">midpoint</a></li><li data-type='method'><a href="Vector2.html#.multiply">multiply</a></li><li data-type='method'><a href="Vector2.html#.multiplyScalar">multiplyScalar</a></li><li data-type='method'><a href="Vector2.html#.normals">normals</a></li><li data-type='method'><a href="Vector2.html#.scalarProjection">scalarProjection</a></li><li data-type='method'><a href="Vector2.html#.subtract">subtract</a></li><li data-type='method'><a href="Vector2.html#.threePointangle">threePointangle</a></li><li data-type='method'><a href="Vector2.html#.units">units</a></li></ul></li><li><a href="Vertex.html">Vertex</a><ul class='methods'><li data-type='method'><a href="Vertex.html#addChild">addChild</a></li><li data-type='method'><a href="Vertex.html#addRingbondChild">addRingbondChild</a></li><li data-type='method'><a href="Vertex.html#clone">clone</a></li><li data-type='method'><a href="Vertex.html#equals">equals</a></li><li data-type='method'><a href="Vertex.html#getAngle">getAngle</a></li><li data-type='method'><a href="Vertex.html#getDrawnNeighbours">getDrawnNeighbours</a></li><li data-type='method'><a href="Vertex.html#getNeighbourCount">getNeighbourCount</a></li><li data-type='method'><a href="Vertex.html#getNeighbours">getNeighbours</a></li><li data-type='method'><a href="Vertex.html#getNextInRing">getNextInRing</a></li><li data-type='method'><a href="Vertex.html#getSpanningTreeNeighbours">getSpanningTreeNeighbours</a></li><li data-type='method'><a href="Vertex.html#getTextDirection">getTextDirection</a></li><li data-type='method'><a href="Vertex.html#isTerminal">isTerminal</a></li><li data-type='method'><a href="Vertex.html#setParentVertexId">setParentVertexId</a></li><li data-type='method'><a href="Vertex.html#setPosition">setPosition</a></li><li data-type='method'><a href="Vertex.html#setPositionFromVector">setPositionFromVector</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#getChargeText">getChargeText</a></li></ul>
</nav>

<div id="main">
    
    <h1 class="page-title">DrawerBase</h1>
    

    




<section>

<header>
    
        <h2>
        DrawerBase
        </h2>
        
            <div class="class-description usertext"><p>The main class of the application representing the smiles drawer</p></div>
        
    
</header>

<article>
    
        <div class="container-overview">
        
            

    
    <h2>Constructor</h2>
    

    <h4 class="name" id="DrawerBase"><span class="type-signature"></span>new DrawerBase<span class="signature">(options)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line29">line 29</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>



    <h5 class="subsection-title">Properties:</h5>

    

<table class="props">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>graph</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Graph.html">Graph</a></span>


            
            </td>

            

            

            <td class="description last"><p>The graph associated with this SmilesDrawer.Drawer instance.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ringIdCounter</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>An internal counter to keep track of ring ids.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ringConnectionIdCounter</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>An internal counter to keep track of ring connection ids.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>canvasWrapper</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="CanvasWrapper.html">CanvasWrapper</a></span>


            
            </td>

            

            

            <td class="description last"><p>The CanvasWrapper associated with this SmilesDrawer.Drawer instance.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>totalOverlapScore</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The current internal total overlap score.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>defaultOptions</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>The default options.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>opts</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>The merged options.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>theme</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>The current theme.</p></td>
        </tr>

    
    </tbody>
</table>






<div class="description usertext">
    <p>The constructor for the class SmilesDrawer.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>options</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>An object containing custom values for different options. It is merged with the default options.</p></td>
        </tr>

    
    </tbody>
</table>



















        
        </div>
    

    

    

    
    
    

     

    

    

    
        <h3 class="subsection-title">Methods</h3>

        
            

    

    <h4 class="name" id="addRing"><span class="type-signature"></span>addRing<span class="signature">(ring)</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1184">line 1184</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Add a ring to this representation of a molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Ring.html">Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A new ring.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring id of the new ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="addRingConnection"><span class="type-signature"></span>addRingConnection<span class="signature">(ringConnection)</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1235">line 1235</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Add a ring connection to this representation of a molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringConnection</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="RingConnection.html">RingConnection</a></span>


            
            </td>

            

            

            <td class="description last"><p>A new ringConnection.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring connection id of the new ring connection.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="annotateStereochemistry"><span class="type-signature"></span>annotateStereochemistry<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2821">line 2821</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Annotaed stereochemistry information for visualization.</p>
</div>




























        
            

    

    <h4 class="name" id="areVerticesInSameRing"><span class="type-signature"></span>areVerticesInSameRing<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1060">line 1060</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Checks whether or not two vertices are in the same ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the two vertices are in the same ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="backupRingInformation"><span class="type-signature"></span>backupRingInformation<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1766">line 1766</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Stores the current information associated with rings.</p>
</div>




























        
            

    

    <h4 class="name" id="chooseSide"><span class="type-signature"></span>chooseSide<span class="signature">(vertexA, vertexB, sides)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1384">line 1384</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>When drawing a double bond, choose the side to place the double bond. E.g. a double bond should always been drawn inside a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>sides</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="Vector2.html">Vector2</a>></span>


            
            </td>

            

            

            <td class="description last"><p>An array containing the two normals of the line spanned by the two provided vertices.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Returns an object containing the following information: {
totalSideCount: Counts the sides of each vertex in the molecule, is an array [ a, b ],
totalPosition: Same as position, but based on entire molecule,
sideCount: Counts the sides of each neighbour, is an array [ a, b ],
position: which side to position the second bond, is 0 or 1, represents the index in the normal array. This is based on only the neighbours
anCount: the number of neighbours of vertexA,
bnCount: the number of neighbours of vertexB
}</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="createBridgedRing"><span class="type-signature"></span>createBridgedRing<span class="signature">(ringIds, sourceVertexId)</span><span class="type-signature"> &rarr; {<a href="Ring.html">Ring</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line940">line 940</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Creates a bridged ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringIds</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Number></span>


            
            </td>

            

            

            <td class="description last"><p>An array of ids of rings involved in the bridged ring.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>sourceVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The vertex id to start the bridged ring discovery from.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The bridged ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Ring.html">Ring</a></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="createNextBond"><span class="type-signature"></span>createNextBond<span class="signature">(vertex, previousVertex<span class="signature-attributes">opt</span>, angle<span class="signature-attributes">opt</span>, originShortest<span class="signature-attributes">opt</span>, skipPositioning<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2253">line 2253</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Positiones the next vertex thus creating a bond.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>previousVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The previous vertex which has been positioned.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>angle</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>0.0</code>
                
                </td>
            

            <td class="description last"><p>The (global) angle of the vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>originShortest</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>Whether the origin is the shortest subtree in the branch.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>skipPositioning</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>Whether or not to skip positioning and just check the neighbours.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="createRing"><span class="type-signature"></span>createRing<span class="signature">(ring, center<span class="signature-attributes">opt</span>, startVertex<span class="signature-attributes">opt</span>, previousVertex<span class="signature-attributes">opt</span>, previousVertex<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1826">line 1826</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Creates a new ring, that is, positiones all the vertices inside a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Ring.html">Ring</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The ring to position.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>center</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>
|

<span class="param-type">null</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The center of the ring to be created.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>startVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>
|

<span class="param-type">null</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The first vertex to be positioned inside the ring.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>previousVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>
|

<span class="param-type">null</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The last vertex that was positioned.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>previousVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>A boolean indicating whether or not this ring was force positioned already - this is needed after force layouting a ring, in order to draw rings connected to it.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="draw"><span class="type-signature"></span>draw<span class="signature">(data, target, themeName, infoOnly)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line280">line 280</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Draws the parsed smiles data to a canvas element.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>data</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The tree returned by the smiles parser.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>target</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>
|

<span class="param-type">HTMLCanvasElement</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The id of the HTML canvas element the structure is drawn to - or the element itself.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>themeName</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>'dark'</code>
                
                </td>
            

            <td class="description last"><p>The name of the theme to use. Built-in themes are 'light' and 'dark'.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>infoOnly</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>Only output info on the molecule without drawing anything to the canvas.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="drawEdge"><span class="type-signature"></span>drawEdge<span class="signature">(edgeId, debug)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1514">line 1514</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Draw the an edge as a bonds to the canvas.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edgeId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>An edge id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>debug</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            

            

            <td class="description last"><p>A boolean indicating whether or not to draw debug helpers.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="drawEdges"><span class="type-signature"></span>drawEdges<span class="signature">(debug)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1480">line 1480</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Draw the actual edges as bonds to the canvas.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>debug</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            

            

            <td class="description last"><p>A boolean indicating whether or not to draw debug helpers.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="drawVertices"><span class="type-signature"></span>drawVertices<span class="signature">(debug)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1668">line 1668</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Draws the vertices representing atoms to the canvas.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>debug</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            

            

            <td class="description last"><p>A boolean indicating whether or not to draw debug messages to the canvas.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="edgeRingCount"><span class="type-signature"></span>edgeRingCount<span class="signature">(edgeId)</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line313">line 313</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the number of rings this edge is a part of.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edgeId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The id of an edge.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The number of rings the provided edge is part of.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getBridgedRingRings"><span class="type-signature"></span>getBridgedRingRings<span class="signature">(ringId)</span><span class="type-signature"> &rarr; {Array.&lt;Number>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line891">line 891</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns all rings connected by bridged bonds starting from the ring with the supplied ring id.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all ring ids of rings part of a bridged ring system.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;Number></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getBridgedRings"><span class="type-signature"></span>getBridgedRings<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;<a href="Ring.html">Ring</a>>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line326">line 326</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns an array containing the bridged rings associated with this  molecule.</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all bridged rings associated with this molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;<a href="Ring.html">Ring</a>></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getClosestVertex"><span class="type-signature"></span>getClosestVertex<span class="signature">(vertex)</span><span class="type-signature"> &rarr; {<a href="Vertex.html">Vertex</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1156">line 1156</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the closest vertex (connected as well as unconnected).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>The vertex of which to find the closest other vertex.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The closest vertex.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getCommonRingbondNeighbour"><span class="type-signature"></span>getCommonRingbondNeighbour<span class="signature">(vertex)</span><span class="type-signature"> &rarr; {Number|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2675">line 2675</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Gets the vetex sharing the edge that is the common bond of two rings.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The id of a vertex sharing the edge that is the common bond of two rings with the vertex provided or null, if none.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getCommonRings"><span class="type-signature"></span>getCommonRings<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {Array.&lt;Number>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1081">line 1081</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns an array of ring ids shared by both vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array of ids of rings shared by the two vertices.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;Number></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getCurrentCenterOfMass"><span class="type-signature"></span>getCurrentCenterOfMass<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Vector2.html">Vector2</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2055">line 2055</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the current (positioned vertices so far) center of mass.</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The current center of mass.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getCurrentCenterOfMassInNeigbourhood"><span class="type-signature"></span>getCurrentCenterOfMassInNeigbourhood<span class="signature">(vec, r<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Vector2.html">Vector2</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2078">line 2078</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the current (positioned vertices so far) center of mass in the neighbourhood of a given position.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vec</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The point at which to look for neighbours.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>r</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>currentBondLength*2.0</code>
                
                </td>
            

            <td class="description last"><p>The radius of vertices to include.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The current center of mass.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getEdgeNormals"><span class="type-signature"></span>getEdgeNormals<span class="signature">(edge)</span><span class="type-signature"> &rarr; {Array.&lt;<a href="Vector2.html">Vector2</a>>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2785">line 2785</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Get the normals of an edge.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edge</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Edge.html">Edge</a></span>


            
            </td>

            

            

            <td class="description last"><p>An edge.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing two vectors, representing the normals.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;<a href="Vector2.html">Vector2</a>></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getFusedRings"><span class="type-signature"></span>getFusedRings<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;<a href="Ring.html">Ring</a>>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line343">line 343</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns an array containing all fused rings associated with this molecule.</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all fused rings associated with this molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;<a href="Ring.html">Ring</a>></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getHeavyAtomCount"><span class="type-signature"></span>getHeavyAtomCount<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line488">line 488</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the number of heavy atoms (non-hydrogen) in the current molecule.</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The heavy atom count.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getLargestOrAromaticCommonRing"><span class="type-signature"></span>getLargestOrAromaticCommonRing<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {<a href="Ring.html">Ring</a>|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1102">line 1102</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the aromatic or largest ring shared by the two vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>If an aromatic common ring exists, that ring, else the largest (non-aromatic) ring, else null.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Ring.html">Ring</a></span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getLastVertexWithAngle"><span class="type-signature"></span>getLastVertexWithAngle<span class="signature">(vertexId)</span><span class="type-signature"> &rarr; {<a href="Vertex.html">Vertex</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2231">line 2231</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Get the last non-null or 0 angle vertex.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The last vertex with an angle that was not 0 or null.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getMolecularFormula"><span class="type-signature"></span>getMolecularFormula<span class="signature">()</span><span class="type-signature"> &rarr; {String}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line505">line 505</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the molecular formula of the loaded molecule as a string.</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The molecular formula.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getNonRingNeighbours"><span class="type-signature"></span>getNonRingNeighbours<span class="signature">(vertexId)</span><span class="type-signature"> &rarr; {Array.&lt;<a href="Vertex.html">Vertex</a>>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2801">line 2801</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns an array of vertices that are neighbouring a vertix but are not members of a ring (including bridges).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array of vertices.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;<a href="Vertex.html">Vertex</a>></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getOverlapScore"><span class="type-signature"></span>getOverlapScore<span class="signature">()</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1320">line 1320</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the overlap score of the current molecule based on its positioned vertices. The higher the score, the more overlaps occur in the structure drawing.</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Returns the total overlap score and the overlap score of each vertex sorted by score (higher to lower). Example: { total: 99, scores: [ { id: 0, score: 22 }, ... ]  }</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getRing"><span class="type-signature"></span>getRing<span class="signature">(ringId)</span><span class="type-signature"> &rarr; {<a href="Ring.html">Ring</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1221">line 1221</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Gets a ring object from the array of rings associated with the current molecule by its id. The ring id is not equal to the index, since rings can be added and removed when processing bridged rings.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A ring associated with the current molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Ring.html">Ring</a></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getRingbondType"><span class="type-signature"></span>getRingbondType<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {String|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line580">line 580</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the type of the ringbond (e.g. '=' for a double bond). The ringbond represents the break in a ring introduced when creating the MST. If the two vertices supplied as arguments are not part of a common ringbond, the method returns null.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Returns the ringbond type or null, if the two supplied vertices are not connected by a ringbond.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getRingConnection"><span class="type-signature"></span>getRingConnection<span class="signature">(id)</span><span class="type-signature"> &rarr; {<a href="RingConnection.html">RingConnection</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1281">line 1281</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Get a ring connection with a given id.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>id</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring connection with the specified id.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="RingConnection.html">RingConnection</a></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getRingConnections"><span class="type-signature"></span>getRingConnections<span class="signature">(ringId, ringIds)</span><span class="type-signature"> &rarr; {Array.&lt;Number>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1296">line 1296</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Get the ring connections between a ring and a set of rings.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ringIds</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Number></span>


            
            </td>

            

            

            <td class="description last"><p>An array of ring ids.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array of ring connection ids.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;Number></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getRingCount"><span class="type-signature"></span>getRingCount<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line470">line 470</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the ring count of the current molecule.</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring count.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getSpiros"><span class="type-signature"></span>getSpiros<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;<a href="Ring.html">Ring</a>>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line360">line 360</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns an array containing all spiros associated with this molecule.</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all spiros associated with this molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;<a href="Ring.html">Ring</a>></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getSubringCenter"><span class="type-signature"></span>getSubringCenter<span class="signature">(ring, vertex)</span><span class="type-signature"> &rarr; {<a href="Vector2.html">Vector2</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1455">line 1455</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Gets the center of a ring contained within a bridged ring and containing a given vertex.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Ring.html">Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A bridged ring.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The center of the subring that containing the vertex.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getSubtreeOverlapScore"><span class="type-signature"></span>getSubtreeOverlapScore<span class="signature">(vertexId, parentVertexId, vertexOverlapScores)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2020">line 2020</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Gets the overlap score of a subtree.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id (the root of the sub-tree).</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id in the previous direction of the subtree.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexOverlapScores</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Number></span>


            
            </td>

            

            

            <td class="description last"><p>An array containing the vertex overlap scores indexed by vertex id.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An object containing the total overlap score and the center of mass of the subtree weighted by overlap score { value: 0.2, center: new Vector2() }.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getTotalOverlapScore"><span class="type-signature"></span>getTotalOverlapScore<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line461">line 461</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns the total overlap score of the current molecule.</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The overlap score.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="getVerticesAt"><span class="type-signature"></span>getVerticesAt<span class="signature">(position, radius, excludeVertexId)</span><span class="type-signature"> &rarr; {Array.&lt;Number>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1130">line 1130</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns an array of vertices positioned at a specified location.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>position</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


            
            </td>

            

            

            <td class="description last"><p>The position to search for vertices.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>radius</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The radius within to search.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>excludeVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id to be excluded from the search results.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing vertex ids in a given location.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;Number></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="hasBridgedRing"><span class="type-signature"></span>hasBridgedRing<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line479">line 479</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Checks whether or not the current molecule  a bridged ring.</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the current molecule  a bridged ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="initPseudoElements"><span class="type-signature"></span>initPseudoElements<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line3051">line 3051</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Creates pseudo-elements (such as Et, Me, Ac, Bz, ...) at the position of the carbon sets
the involved atoms not to be displayed.</p>
</div>




























        
            

    

    <h4 class="name" id="initRings"><span class="type-signature"></span>initRings<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line738">line 738</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Initializes rings and ringbonds for the current molecule.</p>
</div>




























        
            

    

    <h4 class="name" id="isEdgeInRing"><span class="type-signature"></span>isEdgeInRing<span class="signature">(edge)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2720">line 2720</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Check whether or not an edge is part of a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edge</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Edge.html">Edge</a></span>


            
            </td>

            

            

            <td class="description last"><p>An edge.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the edge is part of a ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="isEdgeRotatable"><span class="type-signature"></span>isEdgeRotatable<span class="signature">(edge)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2733">line 2733</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Check whether or not an edge is rotatable.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edge</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Edge.html">Edge</a></span>


            
            </td>

            

            

            <td class="description last"><p>An edge.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the edge is rotatable.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="isPartOfBridgedRing"><span class="type-signature"></span>isPartOfBridgedRing<span class="signature">(ringId)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line922">line 922</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Checks whether or not a ring is part of a bridged ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the supplied ring (by id) is part of a bridged ring system.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="isPointInRing"><span class="type-signature"></span>isPointInRing<span class="signature">(vec)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2695">line 2695</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Check if a vector is inside any ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vec</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vector.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the point (vector) is inside any of the rings associated with the current molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="isRingAromatic"><span class="type-signature"></span>isRingAromatic<span class="signature">(ring)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2767">line 2767</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Check whether or not a ring is an implicitly defined aromatic ring (lower case smiles).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Ring.html">Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A ring.</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not a ring is implicitly defined as aromatic.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="position"><span class="type-signature"></span>position<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1733">line 1733</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Position the vertices according to their bonds and properties.</p>
</div>




























        
            

    

    <h4 class="name" id="printRingInfo"><span class="type-signature"></span>printRingInfo<span class="signature">()</span><span class="type-signature"> &rarr; {String}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line377">line 377</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Returns a string containing a semicolon and new-line separated list of ring properties: Id; Members Count; Neighbours Count; IsSpiro; IsFused; IsBridged; Ring Count (subrings of bridged rings)</p>
</div>

























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A string as described in the method description.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id="removeRing"><span class="type-signature"></span>removeRing<span class="signature">(ringId)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1196">line 1196</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Removes a ring from the array of rings associated with the current molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="removeRingConnection"><span class="type-signature"></span>removeRingConnection<span class="signature">(ringConnectionId)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1247">line 1247</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Removes a ring connection from the array of rings connections associated with the current molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringConnectionId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring connection id.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="removeRingConnectionsBetween"><span class="type-signature"></span>removeRingConnectionsBetween<span class="signature">(vertexIdA, vertexIdB)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1259">line 1259</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Removes all ring connections between two vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexIdA</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexIdB</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="resolvePrimaryOverlaps"><span class="type-signature"></span>resolvePrimaryOverlaps<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2098">line 2098</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Resolve primary (exact) overlaps, such as two vertices that are connected to the same ring vertex.</p>
</div>




























        
            

    

    <h4 class="name" id="resolveSecondaryOverlaps"><span class="type-signature"></span>resolveSecondaryOverlaps<span class="signature">(scores)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line2198">line 2198</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Resolve secondary overlaps. Those overlaps are due to the structure turning back on itself.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>scores</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Object></span>


            
            </td>

            

            

            <td class="description last"><p>An array of objects sorted descending by score.</p>
                <h6>Properties</h6>
                

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>id</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>score</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The overlap score associated with the vertex id.</p></td>
        </tr>

    
    </tbody>
</table>

            </td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="restoreRingInformation"><span class="type-signature"></span>restoreRingInformation<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1786">line 1786</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Restores the most recently backed up information associated with rings.</p>
</div>




























        
            

    

    <h4 class="name" id="rotateDrawing"><span class="type-signature"></span>rotateDrawing<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line398">line 398</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Rotates the drawing to make the widest dimension horizontal.</p>
</div>




























        
            

    

    <h4 class="name" id="rotateSubtree"><span class="type-signature"></span>rotateSubtree<span class="signature">(vertexId, parentVertexId, angle, center)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1996">line 1996</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Rotate an entire subtree by an angle around a center.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id (the root of the sub-tree).</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id in the previous direction of the subtree that is to rotate.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>angle</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>An angle in randians.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>center</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


            
            </td>

            

            

            <td class="description last"><p>The rotational center.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="setRingCenter"><span class="type-signature"></span>setRingCenter<span class="signature">(ring)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line1437">line 1437</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>Sets the center for a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Ring.html">Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A ring.</p></td>
        </tr>

    
    </tbody>
</table>



















        
            

    

    <h4 class="name" id="visitStereochemistry"><span class="type-signature"></span>visitStereochemistry<span class="signature">(vertexId, previousVertexId, visited, priority, maxDepth, depth)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="DrawerBase.js.html">DrawerBase.js</a>, <a href="DrawerBase.js.html#line3008">line 3008</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>















    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The id of a vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>previousVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>
|

<span class="param-type">null</span>


            
            </td>

            

            

            <td class="description last"><p>The id of the parent vertex of the vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>visited</code></td>
            

            <td class="type">
            
                
<span class="param-type">Uint8Array</span>


            
            </td>

            

            

            <td class="description last"><p>An array containing the visited flag for all vertices in the graph.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>priority</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>An array of arrays storing the atomic numbers for each level.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>maxDepth</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The maximum depth.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>depth</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last"><p>The current depth.</p></td>
        </tr>

    
    </tbody>
</table>



















        
    

    

    
</article>

</section>




    
    
</div>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Sat Jan 21 2023 21:51:59 GMT+0100 (Central European Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/polyfill.js"></script>
<script src="scripts/linenumber.js"></script>



</body>
</html>